WOLF core
WOLF: A Modular Estimation Framework for Robotics
XXXXXXXXXXXXXXXXXXXXXXXXvoid(0)" frameborder="0" name="MSearchResults" id="MSearchResults">
wolf::SolverCeres Class Reference

#include <core/ceres_wrapper/solver_ceres.h>

Inheritance diagram for wolf::SolverCeres:
[legend]

Public Member Functions

 SolverCeres (const ProblemPtr &_wolf_problem, const YAML::Node &_params)
 
 WOLF_SOLVER_CREATE (SolverCeres)
 
 ~SolverCeres () override
 
ceres::Solver::Summary getSummary () const
 
std::unique_ptr< ceres::Problem > & getCeresProblem ()
 
bool computeCovariancesDerived (CovarianceBlocksToBeComputed _blocks=CovarianceBlocksToBeComputed::ROBOT_LANDMARKS) override
 
bool computeCovariancesDerived (const std::vector< StateBlockPtr > &st_list) override
 
bool converged () const override
 
bool failed () const override
 
bool wasStopped () const override
 
unsigned int iterations () const override
 
double initialCost () const override
 
double finalCost () const override
 
double totalTime () const override
 
ceres::Solver::Options & getSolverOptions ()
 
const Eigen::SparseMatrixd computeHessian () const
 
virtual int numStateBlocksEstimatedDerived () const override
 
virtual int numFactorsDerived () const override
 
virtual int sizeStateBlocksEstimatedDerived () const override
 
virtual int sizeFactorsDerived () const override
 
- Public Member Functions inherited from wolf::SolverManager
void printProfiling (std::ostream &stream=std::cout) const
 
const ProfilingUnit & getProfilingTotal () const
 
const ProfilingUnit & getProfilingSolve () const
 
const ProfilingUnit & getProfilingUpdate () const
 
const ProfilingUnit & getProfilingState () const
 
const ProfilingUnit & getProfilingCov () const
 
 SolverManager (const ProblemPtr &_problem)
 Constructor with default params_. More...
 
 SolverManager (const ProblemPtr &_problem, const YAML::Node &_params)
 Constructor with given params_. More...
 
virtual ~SolverManager ()
 
std::string solve ()
 Solves with the verbosity defined in params_. More...
 
std::string solve (const ReportVerbosity report_level)
 Solves with a given verbosity. More...
 
virtual bool computeCovariances () final
 
virtual bool computeCovariances (const CovarianceBlocksToBeComputed blocks) final
 
virtual bool computeCovariances (const std::vector< StateBlockPtr > &st_list) final
 
virtual void update ()
 Updates solver's problem according to the wolf_problem. More...
 
ProblemPtr getProblem ()
 
YAML::Node getParams () const
 
bool getComputeCov () const
 
double getPeriod () const
 
double getCovPeriod () const
 
ReportVerbosity getVerbosity () const
 
virtual bool isStateBlockRegistered (const StateBlockPtr &state_ptr) const final
 
virtual bool isStateBlockFloating (const StateBlockPtr &state_ptr) const final
 
virtual bool isStateBlockFixed (const StateBlockPtr &st) const final
 
virtual bool isFactorRegistered (const FactorBasePtr &fac_ptr) const final
 
virtual bool hasThisLocalParametrization (const StateBlockPtr &st, const LocalParametrizationBasePtr &local_param) const final
 
virtual bool hasLocalParametrization (const StateBlockPtr &st) const final
 
virtual int numFactors () const final
 
virtual int sizeFactors () const final
 
virtual int numStateBlocks () const final
 
virtual int sizeStateBlocks () const final
 
virtual int numStateBlocksEstimated () const final
 
virtual int sizeStateBlocksEstimated () const final
 
virtual int numFactorsDerived () const =0
 
virtual int sizeFactorsDerived () const =0
 
virtual int numStateBlocksEstimatedDerived () const =0
 
virtual int sizeStateBlocksEstimatedDerived () const =0
 
virtual bool check (std::string prefix="") const final
 
virtual bool converged () const =0
 
virtual bool failed () const =0
 
virtual bool wasStopped () const =0
 
virtual unsigned int iterations () const =0
 
virtual double initialCost () const =0
 
virtual double finalCost () const =0
 
virtual double totalTime () const =0
 
virtual void run () final
 
virtual void stop () final
 

Protected Member Functions

bool checkDerived (std::string prefix="") const override
 
std::string solveDerived (const ReportVerbosity report_level) override
 
void addFactorDerived (const FactorBasePtr &fac_ptr) override
 
void removeFactorDerived (const FactorBasePtr &fac_ptr) override
 
void addStateBlockDerived (const StateBlockPtr &state_ptr) override
 
void removeStateBlockDerived (const StateBlockPtr &state_ptr) override
 
void updateStateBlockStatusDerived (const StateBlockPtr &state_ptr) override
 
void updateStateBlockLocalParametrizationDerived (const StateBlockPtr &state_ptr) override
 
ceres::CostFunctionPtr createCostFunction (const FactorBasePtr &_fac_ptr)
 
bool isFactorRegisteredDerived (const FactorBasePtr &fac_ptr) const override
 
bool isStateBlockRegisteredDerived (const StateBlockPtr &state_ptr) const override
 
bool isStateBlockFixedDerived (const StateBlockPtr &st) const override
 
bool hasThisLocalParametrizationDerived (const StateBlockPtr &st, const LocalParametrizationBasePtr &local_param) const override
 
bool hasLocalParametrizationDerived (const StateBlockPtr &st) const override
 
void printProfilingDerived (std::ostream &_stream) const override
 
- Protected Member Functions inherited from wolf::SolverManager
virtual Eigen::VectorXd & getAssociatedMemBlock (const StateBlockPtr &state_ptr)
 
const double * getAssociatedMemBlockPtr (const StateBlockPtr &state_ptr) const
 
double * getAssociatedMemBlockPtr (const StateBlockPtr &state_ptr)
 
virtual std::string solveDerived (const ReportVerbosity report_level)=0
 
virtual bool computeCovariancesDerived (const CovarianceBlocksToBeComputed blocks)=0
 
virtual bool computeCovariancesDerived (const std::vector< StateBlockPtr > &st_list)=0
 
virtual void addFactorDerived (const FactorBasePtr &fac_ptr)=0
 
virtual void removeFactorDerived (const FactorBasePtr &fac_ptr)=0
 
virtual void addStateBlockDerived (const StateBlockPtr &state_ptr)=0
 
virtual void removeStateBlockDerived (const StateBlockPtr &state_ptr)=0
 
virtual void updateStateBlockStatusDerived (const StateBlockPtr &state_ptr)=0
 
virtual void updateStateBlockLocalParametrizationDerived (const StateBlockPtr &state_ptr)=0
 
virtual bool isStateBlockRegisteredDerived (const StateBlockPtr &state_ptr) const =0
 
virtual bool isFactorRegisteredDerived (const FactorBasePtr &fac_ptr) const =0
 
virtual bool isStateBlockFixedDerived (const StateBlockPtr &st) const =0
 
virtual bool hasLocalParametrizationDerived (const StateBlockPtr &st) const =0
 
virtual bool hasThisLocalParametrizationDerived (const StateBlockPtr &st, const LocalParametrizationBasePtr &local_param) const =0
 
virtual void printProfilingDerived (std::ostream &stream=std::cout) const =0
 
virtual bool checkDerived (std::string prefix="") const =0
 

Protected Attributes

std::map< FactorBasePtr, ceres::ResidualBlockId > fac_2_residual_idx_
 
std::map< FactorBasePtr, ceres::CostFunctionPtr > fac_2_costfunction_
 
std::map< StateBlockPtr, ManifoldWrapperPtr > state_blocks_manifold_
 
ceres::Solver::Summary summary_
 
std::unique_ptr< ceres::Problem > ceres_problem_
 
std::unique_ptr< ceres::Covariance > covariance_
 
unsigned int n_iter_acc_
 
unsigned int n_iter_max_
 
unsigned int n_convergence_
 
unsigned int n_interrupted_
 
unsigned int n_no_convergence_
 
ceres::Solver::Options solver_options_
 
- Protected Attributes inherited from wolf::SolverManager
ProblemPtr wolf_problem_
 
ProfilingUnit profiling_total_
 
ProfilingUnit profiling_solve_
 
ProfilingUnit profiling_update_
 
ProfilingUnit profiling_state_
 
ProfilingUnit profiling_cov_
 
YAML::Node params_
 
std::map< StateBlockPtr, Eigen::VectorXd > state_blocks_
 
std::map< StateBlockPtr, FactorBasePtrList > state_blocks_2_factors_
 
std::set< FactorBasePtr > factors_
 
std::set< StateBlockPtr > floating_state_blocks_
 
double period_
 
ReportVerbosity verbose_
 
bool compute_cov_
 
CovarianceBlocksToBeComputed cov_enum_
 
double cov_period_
 
std::chrono::high_resolution_clock::time_point last_cov_time_
 
bool stopping_
 

Additional Inherited Members

- Public Types inherited from wolf::SolverManager
enum class  CovarianceBlocksToBeComputed : std::size_t {
  ALL = 0 , ALL_MARGINALS = 1 , ROBOT_LANDMARKS = 2 , GAUSS = 3 ,
  GAUSS_TUCAN = 4 , GAUSS_TUCAN_ONLY_POSITION = 5
}
 Enumeration of covariance blocks to be computed. More...
 
enum class  ReportVerbosity : std::size_t { QUIET = 0 , BRIEF = 1 , FULL = 2 }
 Enumeration for the verbosity of the solver report. More...
 
- Static Public Member Functions inherited from wolf::SolverManager
static SolverManagerPtr autoSetup (const ProblemPtr &_problem, const std::string &_input_yaml_file, std::vector< std::string > _primary_schema_folders, bool _skip_yaml_validation=false)
 
static SolverManagerPtr autoSetup (const ProblemPtr &_problem, YAML::Node _param_node, std::vector< std::string > _primary_schema_folders, bool _skip_yaml_validation=false)
 

Constructor & Destructor Documentation

◆ SolverCeres()

wolf::SolverCeres::SolverCeres ( const ProblemPtr &  _wolf_problem,
const YAML::Node &  _params 
)

◆ ~SolverCeres()

wolf::SolverCeres::~SolverCeres ( )
override

Member Function Documentation

◆ addFactorDerived()

void wolf::SolverCeres::addFactorDerived ( const FactorBasePtr &  fac_ptr)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ addStateBlockDerived()

void wolf::SolverCeres::addStateBlockDerived ( const StateBlockPtr &  state_ptr)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ checkDerived()

bool wolf::SolverCeres::checkDerived ( std::string  prefix = "") const
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ computeCovariancesDerived() [1/2]

bool wolf::SolverCeres::computeCovariancesDerived ( const std::vector< StateBlockPtr > &  st_list)
overridevirtual

Implements wolf::SolverManager.

◆ computeCovariancesDerived() [2/2]

bool wolf::SolverCeres::computeCovariancesDerived ( CovarianceBlocksToBeComputed  _blocks = CovarianceBlocksToBeComputed::ROBOT_LANDMARKS)
overridevirtual

Implements wolf::SolverManager.

◆ computeHessian()

const Eigen::SparseMatrixd wolf::SolverCeres::computeHessian ( ) const

◆ converged()

bool wolf::SolverCeres::converged ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ createCostFunction()

ceres::CostFunctionPtr wolf::SolverCeres::createCostFunction ( const FactorBasePtr &  _fac_ptr)
protected

◆ failed()

bool wolf::SolverCeres::failed ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ finalCost()

double wolf::SolverCeres::finalCost ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ getCeresProblem()

std::unique_ptr< ceres::Problem > & wolf::SolverCeres::getCeresProblem ( )
inline

◆ getSolverOptions()

ceres::Solver::Options & wolf::SolverCeres::getSolverOptions ( )
inline

◆ getSummary()

ceres::Solver::Summary wolf::SolverCeres::getSummary ( ) const
inline

◆ hasLocalParametrizationDerived()

bool wolf::SolverCeres::hasLocalParametrizationDerived ( const StateBlockPtr &  st) const
inlineoverrideprotectedvirtual

Implements wolf::SolverManager.

◆ hasThisLocalParametrizationDerived()

bool wolf::SolverCeres::hasThisLocalParametrizationDerived ( const StateBlockPtr &  st,
const LocalParametrizationBasePtr &  local_param 
) const
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ initialCost()

double wolf::SolverCeres::initialCost ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ isFactorRegisteredDerived()

bool wolf::SolverCeres::isFactorRegisteredDerived ( const FactorBasePtr &  fac_ptr) const
inlineoverrideprotectedvirtual

Implements wolf::SolverManager.

◆ isStateBlockFixedDerived()

bool wolf::SolverCeres::isStateBlockFixedDerived ( const StateBlockPtr &  st) const
inlineoverrideprotectedvirtual

Implements wolf::SolverManager.

◆ isStateBlockRegisteredDerived()

bool wolf::SolverCeres::isStateBlockRegisteredDerived ( const StateBlockPtr &  state_ptr) const
inlineoverrideprotectedvirtual

Implements wolf::SolverManager.

◆ iterations()

unsigned int wolf::SolverCeres::iterations ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ numFactorsDerived()

int wolf::SolverCeres::numFactorsDerived ( ) const
inlineoverridevirtual

Implements wolf::SolverManager.

◆ numStateBlocksEstimatedDerived()

int wolf::SolverCeres::numStateBlocksEstimatedDerived ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ printProfilingDerived()

void wolf::SolverCeres::printProfilingDerived ( std::ostream &  _stream) const
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ removeFactorDerived()

void wolf::SolverCeres::removeFactorDerived ( const FactorBasePtr &  fac_ptr)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ removeStateBlockDerived()

void wolf::SolverCeres::removeStateBlockDerived ( const StateBlockPtr &  state_ptr)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ sizeFactorsDerived()

int wolf::SolverCeres::sizeFactorsDerived ( ) const
inlineoverridevirtual

Implements wolf::SolverManager.

◆ sizeStateBlocksEstimatedDerived()

int wolf::SolverCeres::sizeStateBlocksEstimatedDerived ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ solveDerived()

std::string wolf::SolverCeres::solveDerived ( const ReportVerbosity  report_level)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ totalTime()

double wolf::SolverCeres::totalTime ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ updateStateBlockLocalParametrizationDerived()

void wolf::SolverCeres::updateStateBlockLocalParametrizationDerived ( const StateBlockPtr &  state_ptr)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ updateStateBlockStatusDerived()

void wolf::SolverCeres::updateStateBlockStatusDerived ( const StateBlockPtr &  state_ptr)
overrideprotectedvirtual

Implements wolf::SolverManager.

◆ wasStopped()

bool wolf::SolverCeres::wasStopped ( ) const
overridevirtual

Implements wolf::SolverManager.

◆ WOLF_SOLVER_CREATE()

wolf::SolverCeres::WOLF_SOLVER_CREATE ( SolverCeres  )

Member Data Documentation

◆ ceres_problem_

std::unique_ptr<ceres::Problem> wolf::SolverCeres::ceres_problem_
protected

◆ covariance_

std::unique_ptr<ceres::Covariance> wolf::SolverCeres::covariance_
protected

◆ fac_2_costfunction_

std::map<FactorBasePtr, ceres::CostFunctionPtr> wolf::SolverCeres::fac_2_costfunction_
protected

◆ fac_2_residual_idx_

std::map<FactorBasePtr, ceres::ResidualBlockId> wolf::SolverCeres::fac_2_residual_idx_
protected

◆ n_convergence_

unsigned int wolf::SolverCeres::n_convergence_
protected

◆ n_interrupted_

unsigned int wolf::SolverCeres::n_interrupted_
protected

◆ n_iter_acc_

unsigned int wolf::SolverCeres::n_iter_acc_
protected

◆ n_iter_max_

unsigned int wolf::SolverCeres::n_iter_max_
protected

◆ n_no_convergence_

unsigned int wolf::SolverCeres::n_no_convergence_
protected

◆ solver_options_

ceres::Solver::Options wolf::SolverCeres::solver_options_
protected

◆ state_blocks_manifold_

std::map<StateBlockPtr, ManifoldWrapperPtr> wolf::SolverCeres::state_blocks_manifold_
protected

◆ summary_

ceres::Solver::Summary wolf::SolverCeres::summary_
protected

The documentation for this class was generated from the following files: